1. Field of the Invention
This invention is related in general to the field of bootable input/output adapters. In particular, the invention consists of a device for providing multiple alternate boot paths.
2. Description of the Prior Art
In a digital processing system, input/output cards referred to as adapters are often used to communicate with devices external to the digital processing system. These adapters traditionally communicate with a central processor of the digital processing system or with each other through a data bus or network. An adapter may be an embedded system, i.e., may include a processing device that must be initialized during power-on and activation. During power-on self-test (“POST”), an adapter's hardware is exercised and diagnostics are performed. During Bootup, an adapter with an embedded processor will initialize the processor and other hardware external to the processor such as memory, and will perform an initial microcode load (“IML”).
Executable programs are stored on the adapter and loaded into the processor during the Boot process. These executables may include a POST executable for performing the power-on self-test, a Kernel or Boot executable responsible for directing the Bootup, and an Exception Handler executable for identifying errors during the Boot process and taking corrective action.
These executable programs are usually maintained in a memory device on the adapter. A common memory device used for this purpose is a Flash memory. The Flash memory is a non-volatile memory device that maintains its data, even when its power source has been turned off or disconnected. A traditional embedded system, such as an adapter, will include a flash image that includes the Kernel, POST, and exception handling executables. A system with a single-path flash includes a single flash image with only one Kernel executable, one POST executable, and one exception handling executable.
A problem may occur if one or more memory locations within the Flash device contain erroneous information. This may occur if the one or more memory locations are defective, an external occurrence has caused the data in the memory locations to become corrupted, or if the process of programming the flash device was interrupted or aborted. Encountering a flash image problem in a single-path flash system requires that the flash be reprogrammed, that the flash device be replaced, or that the adapter possessing the flash device be replaced.
One potential solution is to utilize a redundant flash image including a copy of the Kernel, POST, and exception handler executables. If corrupt information is encountered during the POST of Boot process of the primary flash image, the primary exception handling executable will switch control to the redundant flash image. If the redundant flash image is viable, the POST and Boot processes are loaded into the processor and executed. Alternatively, the Boot and POST processes of the embedded system may be monitored by an external device, such as another adapter or embedded system. If the primary exception handling executable generates an error message, the external device may swap the redundant flash image for the primary flash image and reset the adapter. However, the process of swapping image files and resetting the adapter may take a significant amount of time. Additionally, if the redundant flash image is also corrupted, the adapter will fail to execute its POST and Boot executables requiring that the flash images be programmed, the flash devices be replaced, or the adapter be replaced. Accordingly, it would be advantageous to have a system for providing an alternate boot path that does not require swapping a primary flash image with a redundant flash image. Additionally, it is desirable to have a system for booting from flash images, even if all the flash images include areas of corrupted information.